\begin{enumerate}
	\item 从源代码生成可执行文件的过程称为编译。编译C++程序是一项复杂的任务。通常，C++编译器解析和分析源代码，生成中间代码，优化它，最后在目标文件的文件中生成机器码。另一方面，解释器不产生机器代码，它会逐行执行源代码中的指令。
	\item 首先是预处理，然后编译器通过解析代码来编译代码，执行语法和语义分析，然后生成中间代码。优化生成的中间代码之后，编译器生成最终目标文件(包含机器码)，然后可以将其与其他目标文件链接起来。
	\item 预处理器的目的是处理源文件，使它们为编译做好准备。预处理程序使用预处理程序指令，比如\#define和\#include。指令不代表程序语句，但它们是预处理器的命令，告诉它如何处理源文件的文本。编译器无法识别这些指令，因此无论何时在代码中使用预处理器指令，预处理器都会在代码开始实际编译之前解析它们。
	\item 编译器为每个编译单元输出一个目标文件。链接器的任务是将这些目标文件组合成单个目标文件。
	\item 库可以作为静态库或动态库与可执行文件链接。当为静态库时，将成为最终可执行文件的一部分。动态链接库会被操作系统加载到内存中，以便为您的程序提供使用相应的功能。
\end{enumerate}